#pragma once
#include "prg_list.h"
#include "pkt_list.h"

typedef struct
{
	int ts_id;		// 传输流ID
	int ori_net_id;	// 原始网络ID
	int ver_num;	// 所有表的版本号模式: PAT, PMT, SDT, CAT (NIT/TDT/TOT除外)

	LIST prg_list;		// 节目链表
	LIST pat_pkt_list;	// 包链表
	LIST pmt_pkt_list;
	LIST sdt_pkt_list;
	uint8_t *cc_buf;  	// [0x1FFF + 1] 需在堆上分配

	NODE node;
} TSELEM;


TSELEM* TSELEM_malloc();
void 	TSELEM_free(TSELEM *elem);


// list.h 中定义的宏模板 的函数声明
void	TSELEM_LIST_init(LIST *list);
void	TSELEM_LIST_free(LIST *list);
void	TSELEM_LIST_add (LIST *list, TSELEM *elem);


// 写文件的函数声明
void 	TSELEM_LIST_write_file(LIST *list, int idx, char *path);
